def now():
    print('2020-2-4')


f = now  # 函数也是一个对象， 而且可以被赋值给一个变量，通过变量调用该函数
print(f)
print(f())

print(now.__name__)
print(f.__name__)


# 装饰器：代码在运行期间动态增加功能的方式   本质上是一个返回函数的高阶函数
def log(func):
    def wrapper(*args, **kw):
        print('call%s():' % func.__name__)
        return func(*args, **kw)
    return wrapper


